Apache POI ব্যবহার করে আপনি PowerPoint ফাইল তৈরি করতে পারেন, যেমন PPT এবং PPTX ফরম্যাটে। এর জন্য XSLF API ব্যবহার করা হয়, যা PPTX ফাইলের জন্য উপযুক্ত। HSLF API পুরানো PPT ফরম্যাটের জন্য ব্যবহৃত হয়।
এখানে আলোচনা করা হবে কিভাবে Apache POI ব্যবহার করে PowerPoint ফাইল তৈরি এবং সেই ফাইলে Slide এবং কনটেন্ট যোগ করা যায়।
Slide তৈরি করা এবং কনটেন্ট যোগ করা (PPTX ফাইল)
১. Apache POI এর মাধ্যমে নতুন PowerPoint ফাইল তৈরি করা
XSLF API ব্যবহার করে আমরা একটি নতুন PPTX ফাইল তৈরি করতে পারি এবং তাতে Slide যোগ করতে পারি।
উদাহরণ: নতুন PowerPoint ফাইল তৈরি এবং Slide যোগ করা
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextBox;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import java.io.FileOutputStream;
import java.io.IOException;
public class CreatePPTX {
public static void main(String[] args) {
try {
// Create a new XMLSlideShow object
XMLSlideShow ppt = new XMLSlideShow();
// Create a slide
XSLFSlide slide = ppt.createSlide();
// Add a text box to the slide
XSLFTextBox textBox = slide.createTextBox();
XSLFTextRun textRun = textBox.addNewTextParagraph().addNewTextRun();
textRun.setText("Hello, this is a sample slide created with Apache POI!");
textRun.setFontSize(24.0);
textBox.setAnchor(new java.awt.Rectangle(100, 100, 400, 100));
// Save the PowerPoint presentation to a file
FileOutputStream out = new FileOutputStream("SamplePPTX.pptx");
ppt.write(out);
out.close();
System.out.println("PPTX file created successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে একটি নতুন PowerPoint ফাইল তৈরি করা হয়েছে, যার মধ্যে একটি Slide এবং একটি TextBox যোগ করা হয়েছে। TextBox এর মধ্যে একটি টেক্সট যোগ করা হয়েছে এবং ফাইলটি SamplePPTX.pptx নামে সেভ করা হয়েছে।
Slide এর মধ্যে অন্যান্য কনটেন্ট যোগ করা
২. Text, Image, এবং Shapes যোগ করা
XSLF API এর মাধ্যমে আপনি Slide এ শুধু TextBox নয়, বরং Image, Shapes, Tables, Charts এবং আরও অনেক কনটেন্ট যোগ করতে পারেন। নিচে কিছু সাধারণ কনটেন্ট যোগ করার উদাহরণ দেওয়া হলো।
উদাহরণ: Slide এ Image যোগ করা
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddImageToSlide {
public static void main(String[] args) {
try {
// Create a new PowerPoint presentation
XMLSlideShow ppt = new XMLSlideShow();
// Create a slide
XSLFSlide slide = ppt.createSlide();
// Add an image to the slide
File imgFile = new File("image.jpg"); // Ensure the image is in the correct path
byte[] pictureData = java.nio.file.Files.readAllBytes(imgFile.toPath());
XSLFPictureData picture = ppt.addPicture(pictureData, XSLFPictureData.PICTURE_TYPE_JPEG);
slide.createPicture(picture);
// Save the PowerPoint presentation to a file
FileOutputStream out = new FileOutputStream("SampleWithImage.pptx");
ppt.write(out);
out.close();
System.out.println("PPTX with image created successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে Slide এ একটি Image যোগ করা হয়েছে, যেটি image.jpg নামক একটি ছবি। ছবিটি PowerPoint ফাইলে সেভ করা হয়েছে।
উদাহরণ: Slide এ Shape যোগ করা
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFAutoShape;
import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddShapeToSlide {
public static void main(String[] args) {
try {
// Create a new PowerPoint presentation
XMLSlideShow ppt = new XMLSlideShow();
// Create a slide
XSLFSlide slide = ppt.createSlide();
// Add a shape (rectangle) to the slide
XSLFAutoShape shape = slide.createAutoShape();
shape.setShapeType(ShapeType.RECTANGLE);
shape.setAnchor(new java.awt.Rectangle(50, 50, 200, 100));
// Add text to the shape
XSLFTextParagraph p = shape.addNewTextParagraph();
XSLFTextRun r = p.addNewTextRun();
r.setText("This is a rectangle shape with text!");
// Save the PowerPoint presentation to a file
FileOutputStream out = new FileOutputStream("SampleWithShape.pptx");
ppt.write(out);
out.close();
System.out.println("PPTX with shape created successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে Slide এ একটি Rectangle Shape যোগ করা হয়েছে, এবং সেই শেইপের মধ্যে কিছু টেক্সট যোগ করা হয়েছে।
সারাংশ
Apache POI এর মাধ্যমে PowerPoint (PPTX) ফাইল তৈরি করা এবং তাতে Slide যোগ করা খুবই সহজ। আপনি TextBox, Image, Shape, Chart এবং অন্যান্য কনটেন্ট Slide এ যোগ করতে পারেন। এই সুবিধাটি Apache POI কে Java ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য একটি শক্তিশালী টুল হিসেবে তৈরি করে, যেগুলি PowerPoint ফাইলের কনটেন্ট প্রোগ্রামেটিকভাবে তৈরি, সম্পাদনা এবং ম্যানিপুলেট করতে চায়।
Read more